/**
 */
package org.mro.grib.model.files.secondEdition.products;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Product Definition Template41001</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getTotalNumberOfDataValuesMissing <em>Total Number Of Data Values Missing</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getStatisticalProcess <em>Statistical Process</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getTypeOfTimeIncrementBetweenSuccessiveFields <em>Type Of Time Increment Between Successive Fields</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getIndicatorOfUnitOfTimeForTimeRange <em>Indicator Of Unit Of Time For Time Range</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getLengthOfTheTimeRange <em>Length Of The Time Range</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getIndicatorOfUnitOfTimeForIncrement <em>Indicator Of Unit Of Time For Increment</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getTimeIncrementBetweenSuccessiveFields <em>Time Increment Between Successive Fields</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41001()
 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Cross-section of averaged or otherwise statistically\r\nprocessed analysis or forecast over a range of time' note_1_en='This template is simply experimental, was not validated at the time of publication and should be used only\r\nfor bilateral previously agreed tests.' note_2_en='Hours greater than 65534 will be coded as 65534.' note_3_en='An increment of zero means that the statistical processing is the result of a continuous (or near continuous) process, not\r\nthe processing of a number of discrete samples. Examples of such continuous processes are the temperatures measured\r\nby analogue maximum and minimum thermometers or thermographs, and the rainfall measured by a raingauge.'"
 * @generated
 */
public interface ProductDefinitionTemplate41001 extends ProductDefinitionTemplate41000 {
	/**
	 * Returns the value of the '<em><b>Total Number Of Data Values Missing</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Total Number Of Data Values Missing</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Total Number Of Data Values Missing</em>' attribute.
	 * @see #setTotalNumberOfDataValuesMissing(int)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41001_TotalNumberOfDataValuesMissing()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Total number of data values missing in the statistical process' description_en='Total number of data values missing in the statistical process'"
	 * @generated
	 */
	int getTotalNumberOfDataValuesMissing();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getTotalNumberOfDataValuesMissing <em>Total Number Of Data Values Missing</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Total Number Of Data Values Missing</em>' attribute.
	 * @see #getTotalNumberOfDataValuesMissing()
	 * @generated
	 */
	void setTotalNumberOfDataValuesMissing(int value);

	/**
	 * Returns the value of the '<em><b>Statistical Process</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Statistical Process</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Statistical Process</em>' attribute.
	 * @see #setStatisticalProcess(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41001_StatisticalProcess()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Statistical process' description_en='Statistical process used to calculate the processed field from the field at each time increment\r\nduring the time range (see Code table 4.10)'"
	 * @generated
	 */
	byte getStatisticalProcess();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getStatisticalProcess <em>Statistical Process</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Statistical Process</em>' attribute.
	 * @see #getStatisticalProcess()
	 * @generated
	 */
	void setStatisticalProcess(byte value);

	/**
	 * Returns the value of the '<em><b>Type Of Time Increment Between Successive Fields</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Type Of Time Increment Between Successive Fields</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Type Of Time Increment Between Successive Fields</em>' attribute.
	 * @see #setTypeOfTimeIncrementBetweenSuccessiveFields(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41001_TypeOfTimeIncrementBetweenSuccessiveFields()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Type of time increment between successive fields' description_en='Type of time increment between successive fields used in the statistical processing (see\r\nCode table 4.11)'"
	 * @generated
	 */
	byte getTypeOfTimeIncrementBetweenSuccessiveFields();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getTypeOfTimeIncrementBetweenSuccessiveFields <em>Type Of Time Increment Between Successive Fields</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Type Of Time Increment Between Successive Fields</em>' attribute.
	 * @see #getTypeOfTimeIncrementBetweenSuccessiveFields()
	 * @generated
	 */
	void setTypeOfTimeIncrementBetweenSuccessiveFields(byte value);

	/**
	 * Returns the value of the '<em><b>Indicator Of Unit Of Time For Time Range</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Indicator Of Unit Of Time For Time Range</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Indicator Of Unit Of Time For Time Range</em>' attribute.
	 * @see #setIndicatorOfUnitOfTimeForTimeRange(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41001_IndicatorOfUnitOfTimeForTimeRange()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Indicator of unit of time' description_en='Indicator of unit of time for time range over which statistical processing is done (see Code\r\ntable 4.4)'"
	 * @generated
	 */
	byte getIndicatorOfUnitOfTimeForTimeRange();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getIndicatorOfUnitOfTimeForTimeRange <em>Indicator Of Unit Of Time For Time Range</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Indicator Of Unit Of Time For Time Range</em>' attribute.
	 * @see #getIndicatorOfUnitOfTimeForTimeRange()
	 * @generated
	 */
	void setIndicatorOfUnitOfTimeForTimeRange(byte value);

	/**
	 * Returns the value of the '<em><b>Length Of The Time Range</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Length Of The Time Range</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Length Of The Time Range</em>' attribute.
	 * @see #setLengthOfTheTimeRange(int)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41001_LengthOfTheTimeRange()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Length of the time range' description_en='Length of the time range over which statistical processing is done, in units defined by the\r\nprevious octet'"
	 * @generated
	 */
	int getLengthOfTheTimeRange();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getLengthOfTheTimeRange <em>Length Of The Time Range</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Length Of The Time Range</em>' attribute.
	 * @see #getLengthOfTheTimeRange()
	 * @generated
	 */
	void setLengthOfTheTimeRange(int value);

	/**
	 * Returns the value of the '<em><b>Indicator Of Unit Of Time For Increment</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Indicator Of Unit Of Time For Increment</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Indicator Of Unit Of Time For Increment</em>' attribute.
	 * @see #setIndicatorOfUnitOfTimeForIncrement(byte)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41001_IndicatorOfUnitOfTimeForIncrement()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Indicator of unit of time' description_en='Indicator of unit of time for the increment between the successive fields used (see Code\r\ntable 4.4)'"
	 * @generated
	 */
	byte getIndicatorOfUnitOfTimeForIncrement();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getIndicatorOfUnitOfTimeForIncrement <em>Indicator Of Unit Of Time For Increment</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Indicator Of Unit Of Time For Increment</em>' attribute.
	 * @see #getIndicatorOfUnitOfTimeForIncrement()
	 * @generated
	 */
	void setIndicatorOfUnitOfTimeForIncrement(byte value);

	/**
	 * Returns the value of the '<em><b>Time Increment Between Successive Fields</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Time Increment Between Successive Fields</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Time Increment Between Successive Fields</em>' attribute.
	 * @see #setTimeIncrementBetweenSuccessiveFields(int)
	 * @see org.mro.grib.model.files.secondEdition.products.ProductsPackage#getProductDefinitionTemplate41001_TimeIncrementBetweenSuccessiveFields()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Time increment between successive fields' description_en='Time increment between successive fields, in units defined by the previous octet (see Note 2)'"
	 * @generated
	 */
	int getTimeIncrementBetweenSuccessiveFields();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate41001#getTimeIncrementBetweenSuccessiveFields <em>Time Increment Between Successive Fields</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Time Increment Between Successive Fields</em>' attribute.
	 * @see #getTimeIncrementBetweenSuccessiveFields()
	 * @generated
	 */
	void setTimeIncrementBetweenSuccessiveFields(int value);

} // ProductDefinitionTemplate41001
